BOM
- 理解 window 对象——BOM 的核心
- 控制窗口、框架和弹出窗口
- 利用 location 对象中的页面信息
- 使用 navigator 对象了解浏览器
window对象
BOM 的核心对象是window,它表示浏览器的一个实例。在浏览器中,window 对象有双重角色, 它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。这意味着在网页中定义的任何一个对象、变量和函数,都以 window 作为其 Global 对象,因此有权访问 parseInt()等方法。location 对象
location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是 document 对象的属性;换句话说,window.location 和 document.location 引用的是同一个对象。location对象的用处不只表现在它保存着当前文档的信息,还表现在它将 URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。
属 性 名 | 例 子 | 说 明 |
---|---|---|
hash | “#contents” | 返回URL中的hash(#号后跟零或多个字符),如果URL 中不包含散列,则返回空字符串 |
host | “www.wrox.com:80” | 返回服务器名称和端口号(如果有) |
hostname | “www.wrox.com” | 返回不带端口的服务器名称 |
href | “http://www.wrox.com“ | 返回当前加载页面的完整URL。而location对象的toString()方法也返回这个值 |
pathname | “/WileyCDA/“ | 返回URL中的目录和(或)文件名 |
port | “8080” | 返回URL中指定的端口号。如果URL中不包含端口号,则 这个属性返回空字符串 |
protocol | “http:” | 返回页面使用的协议。通常是http:或https: |
search | “?q=javascript” | 返回URL的查询字符串。这个字符串以问号开头 |
查询字符串参数
可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象.
|
|
位置操作
使用 replace()方法。这个方法只接受一个参数,即要导航到的 URL;结果虽然会导致浏览器位置改变,但不会在历史记录中生成新记录。在调用 replace()方法之后,用户不能回到前一个页面。
与位置有关的最后一个方法是 reload(),作用是重新加载当前显示的页面。如果调用 reload() 时不传递任何参数,页面就会以最有效的方式重新加载。也就是说,如果页面自上次请求以来并没有改 变过,页面就会从浏览器缓存中重新加载。如果要强制从服务器重新加载,则需要像下面这样为该方法 传递参数 true。
navigator对象
navigator 对象,已经成为识别客户端浏览器的事实标准。
screen对象(略)
JavaScript 中有几个对象在编程中用处不大,而 screen 对象就是其中之一。screen 对象基本上只 用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素宽度和高度等。每个浏览器 中的 screen 对象都包含着各不相同的属性。
history对象
history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。因为 history 是 window 对象的属性,因此每个浏览器窗口、每个标签页乃至每个框架,都有自己的 history 对象与特定的 window 对象关联。出于安全方面的考虑,开发人员无法得知用户浏览过的 URL。不过,借由用户访问 过的页面列表,同样可以在不知道实际 URL 的情况下实现后退和前进。
使用 go()方法可以在用户的历史记录中任意跳转,可以向后也可以向前。这个方法接受一个参数, 表示向后或向前跳转的页面数的一个整数值。负数表示向后跳转(类似于单击浏览器的“后退”按钮), 正数表示向前跳转(类似于单击浏览器的“前进”按钮)。
小结
浏览器对象模型(BOM)以 window 对象为依托,表示浏览器窗口以及页面可见区域。同时,window 对象还是 ECMAScript 中的 Global 对象,因而所有全局变量和函数都是它的属性,且所有原生的构造 函数及其他函数也都存在于它的命名空间下.
- 在使用框架时,每个框架都有自己的 window 对象以及所有原生构造函数及其他函数的副本。 每个框架都保存在 frames 集合中,可以通过位置或通过名称来访问。
- 有一些窗口指针,可以用来引用其他框架,包括父框架。
- top 对象始终指向最外围的框架,也就是整个浏览器窗口。
- parent 对象表示包含当前框架的框架,而 self 对象则回指 window。
- 使用 location 对象可以通过编程方式来访问浏览器的导航系统。设置相应的属性,可以逐段
或整体性地修改浏览器的 URL。 - 调用 replace()方法可以导航到一个新 URL,同时该 URL 会替换浏览器历史记录中当前显示
的页面。 - navigator 对象提供了与浏览器有关的信息。到底提供哪些信息,很大程度上取决于用户的浏
览器;不过,也有一些公共的属性(如 userAgent)存在于所有浏览器中。